;(async function () {
  const express = require('express')
  // 引入帮我们解析请求头中cookie数据的第三方中间件
  const cookieParser = require('cookie-parser')

  // 连接数据库
  const db = require('./db/db')
  // 引入路由器中间件
  const uiRouter = require('./routes/uiRoute')
  const logicRouter = require('./routes/logicRoute')

  try {
    await db // 如果连接成功,则执行后面的代码
    console.log('数据库连接成功')

    const app = express()

    app.set('view engine', 'ejs') //告诉express. 使用的模板引擎是ejs
    app.set('views', './template') //告诉express, ejs模板存放在template目录中
    // express.static 可以帮我们处理所有的静态资源
    // app.use(express.static('静态资源所处的目录的路径'))
    app.use(express.static('./web'))
    // 处理post请求上传的数据
    app.use(express.urlencoded({ extended: false }))

    // 使用解析cookie的中间件
    app.use(cookieParser())

    // 虽然uiRouterlogicRouter和是一个路由器中间件,但是这个中间的具体功能是配置路由,所以一定要写在其他中间件的下面
    app.use(uiRouter)
    app.use(logicRouter)

    app.listen(5000, (err) => {
      if (err) console.log('失败')
      else console.log('成功')
    })
  } catch (error) {
    console.log('数据库连接失败', error)
  }
})()
